﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Praxis.Entities;
using Praxis.BusinessLogic;
using Microsoft.Practices.Unity;

namespace Praxis.UI
{
    public partial class FrmMttoDevolucion : Form
    {
        [Dependency]
        public IDevolucionBL devolucionBL { get; set; }

        [Dependency]
        public IEntregaBL entregaBL { get; set; }

        [Dependency]
        public IEquipoBL equipoBL { get; set; }

        [Dependency]
        public IDetalleEntregaBL detEntregaBL { get; set; }



        bool isNew = true;
        public FrmMttoDevolucion()
        {
            InitializeComponent();
            this.BuildUp();
        }


        

        private void label6_Click(object sender, EventArgs e)
        {

        }

        private void dataGridView2_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void BtnGuardar_Click(object sender, EventArgs e)
        {
            var devolucion = dEVOLUCIONBindingSource.Current as DEVOLUCION;

            if (devolucion != null)
            {
                try
                {
                    if (isNew)
                    {
                        devolucionBL.AddDevolucion(devolucion);
                        isNew = false;
                    }
                    else
                    {
                        devolucionBL.UpdateDevolucion(devolucion);
                        UpdateDevolucion(devolucion.Codigo);
                    }
                    MessageBox.Show("DEVOLUCION GUARDADA CON EXITO");
                }
                catch (Exception ex)
                {

                    MessageBox.Show(this, ex.Message,
                        "Mensaje",
                        MessageBoxButtons.OK,
                        MessageBoxIcon.Stop);
                }

            }
        }

        public void UpdateDevolucion(Int32 id)
        {
            isNew = false;

            var devolucion = devolucionBL.GetFromDevolucionById(id);

            dEVOLUCIONBindingSource.DataSource = devolucion;
        }
        private void btnBAlqAsociado_Click(object sender, EventArgs e)
        {
            CargarEntrega();
        }

        private void CargarEntrega()
        {
            FrmEntrega frmEntrega = new FrmEntrega();
            frmEntrega.ShowDialog();

            

            if (frmEntrega.CurrentEntrega != null)
            {
                var nuevaEnt = entregaBL.GetFromEntregaById(frmEntrega.CurrentEntrega.Codigo);
                var devolucion = dEVOLUCIONBindingSource.Current as DEVOLUCION;
                devolucion.ENTREGA = nuevaEnt;
                devolucion.CodigoEntrega = nuevaEnt.Codigo;
                dEVOLUCIONBindingSource.ResetBindings(true);

                dETALLE_ENTREGABindingSource.DataSource = detEntregaBL.GetAllDetalleEntregaByCliente(codigoEntregaTextBox.Text);
            }
            
        }

        private void FrmMttoDevolucion_Load(object sender, EventArgs e)
        {
            dEVOLUCIONBindingSource.AddNew();
        }
    }
}
